// 导入 Element Plus 的消息组件和电子应用的 logo 路径
import { ElMessage } from 'element-plus'
import logoPath from '$electron/resources/build/logo.png'

/**
 * 根据环境和类型显示适应性消息
 * 在系统通知和 Element Plus 消息组件之间进行选择
 *
 * @param {string} content - 消息内容
 * @param {Object} options - 可选配置对象
 * @param {string} options.type - 消息类型（如：'success', 'warning'等）
 * @param {boolean} options.system - 是否使用系统通知
 * @returns {Object} - 返回一个具有 close 方法的消息对象，对于系统通知，该方法总是返回 false
 */
export function adaptiveMessage(content, { type, system } = {}) {
  // 根据配置决定是否使用系统通知
  if (system) {
    // 使用系统通知显示消息，带有图标和消息体
    new Notification(window.t(`common.${type}`), {
      icon: logoPath,
      body: content,
    })

    // 返回一个带有 close 方法的假消息对象，用于统一接口
    return {
      close: () => false,
    }
  }

  // 使用 Element Plus 的消息组件显示消息
  return ElMessage[type](content)
}
